From 9566ef99d5c0ff92905ea2428b7e5471e108514d Mon Sep 17 00:00:00 2001 From: "cl349@freefall.cl.cam.ac.uk" Date: Tue, 9 Nov 2004 13:12:34 +0000 Subject: [PATCH] bitkeeper revision 1.1159.1.397 (4190c242En4S9vFQxE-5236TUXMRkA) Cleanup pagetables for all exec_domains. --- xen/arch/x86/domain.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c index 331a1bd4ce..822ab13a45 100644 --- a/xen/arch/x86/domain.c +++ b/xen/arch/x86/domain.c @@ -529,6 +529,8 @@ static void relinquish_list(struct domain *d, struct list_head *list) void domain_relinquish_memory(struct domain *d) { + struct exec_domain *ed; + audit_domain(d); /* Ensure that noone is running over the dead domain's page tables. */ @@ -538,9 +540,11 @@ void domain_relinquish_memory(struct domain *d) shadow_mode_disable(d); /* Drop the in-use reference to the page-table base. */ - if ( pagetable_val(d->exec_domain[0]->mm.pagetable) != 0 ) - put_page_and_type(&frame_table[pagetable_val(d->exec_domain[0]->mm.pagetable) >> - PAGE_SHIFT]); + for_each_exec_domain(d, ed) { + if ( pagetable_val(ed->mm.pagetable) != 0 ) + put_page_and_type(&frame_table[pagetable_val(ed->mm.pagetable) >> + PAGE_SHIFT]); + } /* * Relinquish GDT mappings. No need for explicit unmapping of the LDT as -- 2.30.2